package com.nnnu.wsnackshop.service;

import com.nnnu.wsnackshop.pojo.entity.Members;
import com.baomidou.mybatisplus.extension.service.IService;
import java.math.BigDecimal;

/**
 * <p>
 * 会员信息表 服务类
 * </p>
 *
 * @author zk
 * @since 2025-05-14
 */
public interface IMembersService extends IService<Members> {

    /**
     * 更新会员积分
     * 
     * @param userId      用户ID
     * @param points      积分变动值
     * @param changeType  变动类型（1:增加,2:减少）
     * @param description 描述
     * @return 是否更新成功
     */
    boolean updateMemberPoints(Integer userId, Integer points, Integer changeType, String description);

    /**
     * 更新会员成长值
     * 
     * @param userId      用户ID
     * @param growthValue 成长值变动值
     * @param changeType  变动类型（1:增加,2:减少）
     * @param description 描述
     * @return 是否更新成功
     */
    boolean updateMemberGrowth(Integer userId, Integer growthValue, Integer changeType, String description);

    /**
     * 根据订单完成更新会员积分和成长值
     * 
     * @param userId      用户ID
     * @param orderId     订单ID
     * @param orderAmount 订单金额
     * @return 是否更新成功
     */
    boolean updateMemberByOrderComplete(Integer userId, Long orderId, BigDecimal orderAmount);
}
